package f.h.dragon.filter;

/**
 * Filter: filter interface
 *
 * @author Wenlong Meng(wenlong.meng@gmail.com)
 * @version 1.0 at 2012/04/01
 * @since 1.0
 * @param <V>
 * @param <R>
 */
public interface Filter<V, R> {
	
	/**
     * The <code>doFilter</code> method of the Filter is called by the filter. 
     * The FilterChain passed in to this method allows the Filter to pass on 
     * the v to the next entity in the chain.
     * 
     * @param v
     * @param chain
     * @return R
     **/
	public R doFilter(V v, FilterChain<V, R> chain);

}
